package com.ruoyi.map.domain;

import cn.hutool.core.date.DateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 申请调查对象 apply_investigation
 *
 * @author dihang
 * @date 2023-08-16
 */
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ApplyInvestigation extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 用户id
     */
    @Excel(name = "用户id")
    private Long userId;
    /**
     * 准入登记年度
     */
    @Excel(name = "准入登记年度")
    private String year;
    /**
     * 申请编号
     */
    @Excel(name = "申请编号")
    private String applyNum;
    /**
     * 申请人姓名
     */
    @Excel(name = "申请人姓名")
    private String name;
    /**
     * 申请人年龄
     */
    @Excel(name = "申请人年龄")
    private Long age;
    /**
     * 出生日期
     */
    @Excel(name = "出生日期")
    private String birthday;
    /**
     * 申请人证件类型 0居民身份证 1港澳台身份证
     */
    @Excel(name = "申请人证件类型 0居民身份证 1港澳台身份证")
    private String cardType;
    /**
     * 身份证号码
     */
    @Excel(name = "身份证号码")
    private String cardId;
    /**
     * 性别 0男 1女
     */
    @Excel(name = "性别 0男 1女")
    private String gender;
    /**
     * 民族
     */
    @Excel(name = "民族")
    private String nation;
    /**
     * 联系电话
     */
    @Excel(name = "联系电话")
    private String phone;
    /**
     * 户籍所在地
     */
    @Excel(name = "户籍所在地")
    private String registeredResidence;
    /**
     * 家庭人口数
     */
    @Excel(name = "家庭人口数")
    private String familyNum;
    /**
     * 家庭人均年收入 0 五千以内 1一至三万 2 三至五万 3 五万以上
     */
    @Excel(name = "家庭人均年收入 0 五千以内 1一至三万 2 三至五万 3 五万以上")
    private String annualIncome;
    /**
     * 家庭年总收入 0五千至一万 1 一万至三万 2 三万至八万 3 八万以上
     */
    @Excel(name = "家庭年总收入 0五千至一万 1 一万至三万 2 三万至八万 3 八万以上")
    private String totalIncome;
    /**
     * 家庭人均建筑面积
     */
    @Excel(name = "家庭人均建筑面积")
    private String annualArea;
    /**
     * 家庭总建筑面积
     */
    @Excel(name = "家庭总建筑面积")
    private String totalArea;
    /**
     * 是否居住在棚户区 0否1是
     */
    @Excel(name = "是否居住在棚户区 0否1是")
    private String isShantytown;
    /**
     * 棚户区名称
     */
    @Excel(name = "棚户区名称")
    private String shantytownName;
    /**
     * 棚户区类型 0城市棚户区 1国有工矿棚户区 2国有林区棚户区 3国有垦区棚户区
     */
    @Excel(name = "棚户区类型 0城市棚户区 1国有工矿棚户区 2国有林区棚户区 3国有垦区棚户区")
    private String shantytownType;
    /**
     * 国有棚户区隶属关系
     */
    @Excel(name = "国有棚户区隶属关系")
    private String shantytownRelation;
    /**
     * 是否低收入家庭 0否 1是
     */
    @Excel(name = "是否低收入家庭 0否 1是")
    private String lowIncome;
    /**
     * 是否为最低生活保障家庭 0否1是
     */
    @Excel(name = "是否为最低生活保障家庭 0否1是")
    private String lowestIncome;
    /**
     * 最低生活保障证号
     */
    @Excel(name = "最低生活保障证号")
    private String lowestNum;
    /**
     * 是否享受过住房保障待遇 0否1是
     */
    @Excel(name = "是否享受过住房保障待遇 0否1是")
    private String enjoyGuarantee;
    /**
     * 享受住房保障待遇方式 0实物配租1货币补贴
     */
    @Excel(name = "享受住房保障待遇方式 0实物配租1货币补贴")
    private String enjoyWay;
    /**
     * 办理阶段
     */
    @Excel(name = "办理阶段")
    private String processingStage;
    /**
     * 现详细住址（详细到门牌号）
     */
    @Excel(name = "现详细住址", readConverterExp = "详=细到门牌号")
    private String address;
    /**
     * x坐标
     */
    @Excel(name = "x坐标")
    private BigDecimal x;
    /**
     * y坐标
     */
    @Excel(name = "y坐标")
    private BigDecimal y;
    /**
     * 房屋居住情况
     */
    @Excel(name = "房屋居住情况")
    private String houseState;
    /**
     * 产权编号
     */
    @Excel(name = "产权编号")
    private String ownershipNum;
    /**
     * 产权人姓名
     */
    @Excel(name = "产权人姓名")
    private String ownershipName;
    /**
     * 产权人身份证
     */
    @Excel(name = "产权人身份证")
    private String ownershipCard;
    /**
     * 产权人是否是家庭成员
     */
    @Excel(name = "产权人是否是家庭成员")
    private String ownershipFamily;
    /**
     * 产权单位
     */
    @Excel(name = "产权单位")
    private String ownershipUnit;
    /**
     * 产权单位组织机构代码
     */
    @Excel(name = "产权单位组织机构代码")
    private String ownershipUnitNum;
    /**
     * 房屋性质 0商品房 1集资房 2经济适用房 3廉租房 4公租房
     */
    @Excel(name = "房屋性质 0商品房 1集资房 2经济适用房 3廉租房 4公租房")
    private String houseType;
    /**
     * 成套情况
     */
    @Excel(name = "成套情况")
    private String cuffingSituation;
    /**
     * 建成年份
     */
    @Excel(name = "建成年份")
    private String buildingYear;
    /**
     * 租金（年）
     */
    @Excel(name = "租金", readConverterExp = "年=")
    private String rent;
    /**
     * 产权性质 0国有房产 1私有房产 2集体所有房产 3其他房产
     */
    @Excel(name = "产权性质 0国有房产 1私有房产 2集体所有房产 3其他房产")
    private String ownershipType;
    /**
     * 户口性质 0农业户口 1非农业户口
     */
    @Excel(name = "户口性质 0农业户口 1非农业户口")
    private String residentNature;
    /**
     * 户口年限
     */
    @Excel(name = "户口年限")
    private String residentYear;
    /**
     * 是否常住
     */
    @Excel(name = "是否常住")
    private String isChangeless;
    /**
     * 就业情况
     */
    @Excel(name = "就业情况")
    private String jobState;
    /**
     * 工作单位
     */
    @Excel(name = "工作单位")
    private String jobUnit;
    /**
     * 单位性质  0、国家行政企业；
     * 1、公私合作企业；
     * 2、中外合资企业；
     * 3、社会组织；
     * 4、国际组织；
     * 5、外国企业；
     * 6、私营企业；
     * 7、集体企业；
     * 8、国防军事企业
     */
    @Excel(name = "单位性质  0国家行政企业 1公私合作企业\n" +
            "2中外合资企业\n" +
            "3社会组织；\n" +
            "4国际组织；\n" +
            "5外国企业；\n" +
            "6私营企业；\n" +
            "7集体企业；\n" +
            "8国防军事企业")
    private String unitType;
    /**
     * 职业性质 0生产、1加工、2制造、3服务、4娱乐、5政治、6科研、7教育、8 农业、9管理
     */
    @Excel(name = "职业性质 0生产、1加工、2制造、3服务、4娱乐、5政治、6科研、7教育、8 农业、9管理")
    private String jobType;
    /**
     * 文化程度 0小学 1中学 2高中 3中专 4大专 5本科 6研究生 7无文化
     */
    @Excel(name = "文化程度 0小学 1中学 2高中 3中专 4大专 5本科 6研究生 7无文化")
    private String educationLevel;
    /**
     * 婚姻状况 0未婚 1已婚 2离异
     */
    @Excel(name = "婚姻状况 0未婚 1已婚 2离异")
    private String maritalStatus;
    /**
     * 特殊人员代码
     */
    @Excel(name = "特殊人员代码")
    private String specialCode;
    /**
     * 残疾类别
     * 0视力残疾、1听力残疾、2言语残疾、3肢体残疾、4智力残疾、5精神残疾及多重残疾 6无
     */
    @Excel(name = "残疾类别 0视力残疾、1听力残疾、2言语残疾、3肢体残疾、4智力残疾、5精神残疾及多重残疾 6无")
    private String disabilityCategory;
    /**
     * 残疾等级 0一级 1二级 2三级 3四级 4无
     */
    @Excel(name = "残疾等级 0一级 1二级 2三级 3四级 4无")
    private String disabilityLevel;
    /**
     * 荣誉称号级别
     * 0国家级荣誉称号，1省部级荣誉称号。2行业荣誉称号，3学术荣誉称号 4无
     */
    @Excel(name = "荣誉称号级别 0国家级荣誉称号，1省部级荣誉称号。2行业荣誉称号，3学术荣誉称号 4无")
    private String honorLevel;
    /**
     * 荣誉称号
     */
    @Excel(name = "荣誉称号")
    private String honor;
    /**
     * 荣誉奖章级别
     * <p>
     * 0学术类奖章
     * 1社会贡献类奖章
     * 2军事类奖章
     * 3体育类奖章
     * 4艺术与文化类奖章
     * 5科学与技术类奖章
     * 6企业与组织类奖章
     */
    @Excel(name = "荣誉奖章级别 0学术类奖章\n" +
            "1社会贡献类奖章\n" +
            "2军事类奖章\n" +
            "3体育类奖章\n" +
            "4艺术与文化类奖章\n" +
            "5科学与技术类奖章\n" +
            "6企业与组织类奖章")
    private String medalLevel;
    /**
     * 荣誉奖章
     */
    @Excel(name = "荣誉奖章")
    private String medal;
    /**
     * 是否引进人才 0否1是
     */
    @Excel(name = "是否引进人才 0否1是")
    private String importTalent;
    /**
     * 是否外来务工人员 0否1是
     */
    @Excel(name = "是否外来务工人员 0否1是")
    private String migrantWorkers;
    /**
     * 是否享受住房公积金 0否1是
     */
    @Excel(name = "是否享受住房公积金 0否1是")
    private String housingFund;
    /**
     * 是否享受过福利房 0否1是
     */
    @Excel(name = "是否享受过福利房 0否1是")
    private String welfareHousing;
    /**
     * 是否享受住房补贴 0否 1是
     */
    @Excel(name = "是否享受住房补贴 0否 1是")
    private String housingSubsidies;
    /**
     * 是否共同居住 0否1是
     */
    @Excel(name = "是否共同居住 0否1是")
    private String isHabitation;
    /**
     * 收入来源
     */
    @Excel(name = "收入来源")
    private String sourceIncome;
    /**
     * 是否有犯罪记录 0否1是
     */
    @Excel(name = "是否有犯罪记录 0否1是")
    private String criminalRecord;
    /**
     * 养老保险号
     */
    @Excel(name = "养老保险号")
    private String endowmentInsurance;
    /**
     * 医疗保险号
     */
    @Excel(name = "医疗保险号")
    private String medicalInsurance;
    /**
     * 失业保险号
     */
    @Excel(name = "失业保险号")
    private String unemploymentInsurance;
    /**
     * 生育保险号
     */
    @Excel(name = "生育保险号")
    private String maternityInsurance;
    /**
     * 工伤保险号
     */
    @Excel(name = "工伤保险号")
    private String employmentInsurance;
    /**
     * 五保合一号
     */
    @Excel(name = "五保合一号")
    private String wubaoheyiNum;
    /**
     * 公积金账号
     */
    @Excel(name = "公积金账号")
    private String accumulationFund;
    /**
     * 五保证编号
     */
    @Excel(name = "五保证编号")
    private String wubaozhengNum;
    /**
     * 职工特困证号码
     */
    @Excel(name = "职工特困证号码")
    private String destituteNum;
    /**
     * 资产所有人姓名
     */
    @Excel(name = "资产所有人姓名")
    private String assetOwnerName;
    /**
     * 资产情况（详细说明自己所持有的资产）
     */
    @Excel(name = "资产情况", readConverterExp = "详=细说明自己所持有的资产")
    private String assetSituation;
    /**
     * 总价值
     */
    @Excel(name = "总价值")
    private String totalPrice;
    /**
     * 审核人
     */
    @Excel(name = "审核人")
    private String auditPeople;
    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime auditTime;
    /**
     * 审核状态 0待审核 1审核中 2审核不通过 3审核通过 4审核完成
     */
    @Excel(name = "审核状态 0待审核 1审核中 2审核不通过 3审核通过 4审核完成")
    private String auditState;
    /**
     * 预留字段1
     */
    @Excel(name = "预留字段1")
    private String filed1;
    /**
     * 预留字段2
     */
    @Excel(name = "预留字段2")
    private String filed2;
    /**
     * 预留字段3
     */
    @Excel(name = "预留字段3")
    private String filed3;
    /**
     * 预留字段4
     */
    @Excel(name = "预留字段4")
    private String filed4;
    /**
     * 预留字段5
     */
    @Excel(name = "预留字段5")
    private String filed5;
    /**
     * 预留字段6
     */
    @Excel(name = "预留字段6")
    private String filed6;
    /**
     * 预留字段7
     */
    @Excel(name = "预留字段7")
    private String filed7;
    /**
     * 预留字段8
     */
    @Excel(name = "预留字段8")
    private String filed8;
    /**
     * 预留字段9
     */
    @Excel(name = "预留字段9")
    private String filed9;
    /**
     * 预留字段10
     */

    @Excel(name = "预留字段10")
    private String filed10;


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("userId", getUserId())
                .append("year", getYear())
                .append("applyNum", getApplyNum())
                .append("name", getName())
                .append("age", getAge())
                .append("birthday", getBirthday())
                .append("cardType", getCardType())
                .append("card_id", getCardId())
                .append("gender", getGender())
                .append("nation", getNation())
                .append("phone", getPhone())
                .append("registeredResidence", getRegisteredResidence())
                .append("familyNum", getFamilyNum())
                .append("annualIncome", getAnnualIncome())
                .append("totalIncome", getTotalIncome())
                .append("annualArea", getAnnualArea())
                .append("totalArea", getTotalArea())
                .append("isShantytown", getIsShantytown())
                .append("shantytownName", getShantytownName())
                .append("shantytownType", getShantytownType())
                .append("shantytownRelation", getShantytownRelation())
                .append("lowIncome", getLowIncome())
                .append("lowestIncome", getLowestIncome())
                .append("lowestNum", getLowestNum())
                .append("enjoyGuarantee", getEnjoyGuarantee())
                .append("enjoyWay", getEnjoyWay())
                .append("processingStage", getProcessingStage())
                .append("address", getAddress())
                .append("x", getX())
                .append("y", getY())
                .append("houseState", getHouseState())
                .append("ownershipNum", getOwnershipNum())
                .append("ownershipName", getOwnershipName())
                .append("ownershipCard", getOwnershipCard())
                .append("ownershipFamily", getOwnershipFamily())
                .append("ownershipUnit", getOwnershipUnit())
                .append("ownershipUnitNum", getOwnershipUnitNum())
                .append("houseType", getHouseType())
                .append("cuffingSituation", getCuffingSituation())
                .append("buildingYear", getBuildingYear())
                .append("rent", getRent())
                .append("ownershipType", getOwnershipType())
                .append(" residentNature", getResidentNature())
                .append("residentYear", getResidentYear())
                .append("isChangeless", getIsChangeless())
                .append("jobState", getJobState())
                .append("jobUnit", getJobUnit())
                .append("unitType", getUnitType())
                .append("jobType", getJobType())
                .append("educationLevel", getEducationLevel())
                .append("maritalStatus", getMaritalStatus())
                .append("specialCode", getSpecialCode())
                .append("disabilityCategory", getDisabilityCategory())
                .append("disabilityLevel", getDisabilityLevel())
                .append("honorLevel", getHonorLevel())
                .append("honor", getHonor())
                .append("medalLevel", getMedalLevel())
                .append("medal", getMedal())
                .append("importTalent", getImportTalent())
                .append("migrantWorkers", getMigrantWorkers())
                .append("housingFund", getHousingFund())
                .append("welfareHousing", getWelfareHousing())
                .append("housingSubsidies", getHousingSubsidies())
                .append("isHabitation", getIsHabitation())
                .append("sourceIncome", getSourceIncome())
                .append("criminalRecord", getCriminalRecord())
                .append("endowmentInsurance", getEndowmentInsurance())
                .append("medicalInsurance", getMedicalInsurance())
                .append("unemploymentInsurance", getUnemploymentInsurance())
                .append("maternityInsurance", getMaternityInsurance())
                .append("employmentInsurance", getEmploymentInsurance())
                .append("wubaoheyiNum", getWubaoheyiNum())
                .append("accumulationFund", getAccumulationFund())
                .append("wubaozhengNum", getWubaozhengNum())
                .append("destituteNum", getDestituteNum())
                .append("assetOwnerName", getAssetOwnerName())
                .append("assetSituation", getAssetSituation())
                .append("totalPrice", getTotalPrice())
                .append("auditPeople", getAuditPeople())
                .append("auditTime", getAuditTime())
                .append("auditState", getAuditState())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("createBy", getCreateBy())
                .append("updateBy", getUpdateBy())
                .append("remark", getRemark())
                .append("deleted", getDeleted())
                .append("filed1", getFiled1())
                .append("filed2", getFiled2())
                .append("filed3", getFiled3())
                .append("filed4", getFiled4())
                .append("filed5", getFiled5())
                .append("filed6", getFiled6())
                .append("filed7", getFiled7())
                .append("filed8", getFiled8())
                .append("filed9", getFiled9())
                .append("filed10", getFiled10())
                .toString();
    }
}
